﻿/*
 * Twipler - Twitter Web Client with features.
 *  
 *  Copyright (C) 2010. Ian Quigley
 * 
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details. 
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>. 
 */

using System;
using Dimebrain.TweetSharp.Model;
using Dimebrain.TweetSharp.Model.Twitter;
using log4net;
using Twipler.Data.Entity.Twipler;
using Twipler.Twitter;
using System.Collections.Generic;

namespace Twipler.App.Session
{
	public delegate void TwitterWebCallbackSession(object s, TwitterResult r, IInnerSession innerSession);

	public interface IInnerSession
	{
		Visitor Visitor { get; set; }
		string IP { get; set; }
		void AddToCleanUp(ISessionCleanup item);
		void RemoveFromCleanUp(ISessionCleanup item);
		string SessionId { get; }
		void CleanUp();
		DateTime LastSeen { get; }
		string LastPage { get; }

		Caller ApiCaller { get; }
		OAuthToken OAuthToken { get; set; }
		string[] Credentials { get; set; }
		
		void ViewingPage(string page);

		List<string> ScreenNames { get; set; }
	}

}
